Networks, such as the Internet, have become an increasingly important part of our everyday lives. Millions of people now access the Internet on a daily basis to shop for goods and services and obtain information of interest.
The web is built on a very simple, but powerful premise. Much of the material on the web is formatted in a general, uniform format called HTML (Hypertext Markup Language) or the like, and all information requests and responses conform to a similarly standard protocol. When someone accesses a server on the Web, the user's Web browser will send an information request to a Web server. The Web server will respond to the request by transmitting the desired information to the user's computer. There, the user's browser will display the received information on the user's screen.
For example, suppose an individual wishes to purchase a printer via the Internet. The individual accesses the Internet and types in a vendor's uniform resource locator (URL). The individual may then access that vendor's home page to determine whether the vendor has the product that this individual wishes to purchase.
If the individual does not know which vendors sell printers, the individual may access a web site associated with a search engine. The individual enters the generic term “printer” into the search engine to attempt to locate a vendor that sells printers. Using a search engine in this manner to locate individual web sites that offer the desired product or service often results in a list of hundreds or even thousands of “hits,” where each hit may correspond to a web page that relates to the search term.
Once a user decides which web page to visit, the web page is formulated to interest the user. In particular, many web pages allow a user to customize the web pager so that each time the user visits the web page, the customized web page is presented to the user. One of the challenges of online interactions is providing customers or users with consistent online experience while using different channels such as website navigation, email, chat, bulletin boards, discussion forums, chat, and the like. For this uniform presentation, cookies are used.
Cookies are pieces of information generated by a web server and stored in the user's computer, for future access. Cookies are embedded in the http information flowing back and forth between the user's computer and the servers. Cookies allow user-side customization of web information. For example, cookies are used to personalize web search engines, to allow users to participate in WWW-wide contests, to store shopping lists of items a user has selected while browsing through a virtual shopping mall, and the like.
Essentially, cookies make use of user-specific information transmitted by the web server onto the user's computer so that the information might be available for later access by itself or other servers. Typically, the servers are part of the same domain. In most cases, not only does the storage of personal information into a cookie go unnoticed, so does access to it. Web servers automatically gain access to relevant cookies whenever the user establishes a connection to them, usually in the form of web requests.
For a server to use cookies, first the Web server creates a specific cookie, which is essentially a tagged string of text containing the user's preferences, and it transmits this cookie to the user's computer. The cookie is then stored in the user's computer. The user's web browser receives the cookie and stores it in a special file called a cookie list. This usually happens without any notification or user involvement. Next, the cookie is automatically transferred from the user's machine to a web server. Whenever a user directs the web browser to display a certain web page from the server from which it already has a cookie, the browser will, transmit the cookie containing the user's personal information to the web server.
There are many reasons a given site would wish to use cookies. These range from the ability to personalize information, help with on-line sales/services, or simply for the purposes of collecting demographic information. Cookies also provide programmers with a quick and convenient means of keeping site content fresh and relevant to the user's interests. The newest servers use cookies to help with back-end interaction as well, which can improve the utility of a site by being able to securely store any personal data that the user has shared with a site to help with quick logins, and the like.
Usually, a cookie contains more than simply a name and a value. In fact, a cookie can have 6 parameters: the name of the cookie, the value of the cookie, the expiration date of the cookie, the path the cookie is valid for, the domain the cookie is valid for, and the need for a secure connection to exist to use the cookie.
Two of these parameters are mandatory the cookie's name and its value. The other four can be set manually or automatically. Each parameter is separated by a semicolon when set explicitly. The name of a cookie and its value are set simply by pairing them together. The value of a cookie can also be null, for the purpose of clearing the cookie value.
The expiration parameter determines the lifetime of the cookie. For example, the cookie can state “expires=Mon, 01-Jan-2001 00:00:00 GMT.” If “expires” is not set explicitly, the default expiration is the end-of-session. The length of a session can vary depending on browsers and servers, but generally a session is the length of time that the browser is open, even if the user is no longer at that site.
The path parameter sets the URL path within which the cookie is valid. Pages outside of that path cannot read or use the cookie. If Path is not set explicitly, then it defaults to the URL path of the document creating the cookie. The domain parameter takes the flexibility of the path parameter one step further. If a site uses multiple servers within a domain it is important to make the cookie accessible to pages on any of these servers. Generally, the server issuing the cookie is a member of the domain that it sets in the cookie. That is, a server called www.thisserver.com cannot typically set a cookie for the domain www.thatserver.com. If Domain is not set explicitly, then it defaults to the full domain of the document creating the cookie.
The last parameter is the secure parameter. The secure parameter is a flag indicating that a cookie should be used under secure server condition, such as SSL. Since most sites do not require secure connections, this parameter defaults to FALSE.
Often a consistent online experience requires the ability to recognize the customer or user across multiple interactions and recall, either in real-time or offline, the history of events and attributes associated with the customer or user. The recognition of customers or users, when applied to hundreds or thousands of online interactions a day, becomes a challenge, both from a business logic perspective and a technology perspective. Previous systems used business rules engines that parsed the activity of each visitor on the site. The activity was matched against a customized set of business rules. Once a selected rule was applied, an action that presents the site visitor with targeted content was triggered. Systems such as the LivePerson Sales Edition provided real time processing of business rules.
Traditionally, web systems that wanted to access history data about the visitor would access a database for each visitor to the site, only to find out that in most cases there is no meaningful information about the visitor that warrants a special treatment for that user. In the event that this visitor is new to the site, and therefore has no history, the database search wastes time and resources. Some systems can identify that the visitor is a new visitor, not having a site cookie, but would still access the database for all repeat visitors. For the repeat visitors, they would retrieve the history data, analyze it, and most times decide to offer the generic treatment.
In one prior art system, when the system identifies a user based on a previously stored cookie, the records associated with that user are pulled from memory and analyzed. The analysis is done when the user enters the website. Therefore, there is a delay between the user entering the website and when the appropriate action is taken after the system reviews the records and determines what to do based on those records. Alternatively, standard actions are taken for all users as they enter the site.